﻿using System.Linq;
using NpCrm.DataAccess.Core;
using NpCrm.Domain;

namespace NpCrm.DataAccess.Contracts
{
    public interface IDonationRepository : IRepository<Donation, int>
    {
        IQueryable<MonetaryDonation> GetGreaterThanAmount(decimal floorAmount, bool includeFloor);
        IQueryable<MonetaryDonation> GetLessThanAmount(decimal ceilingAmount, bool includeCeiling);
        IQueryable<MonetaryDonation> GetBetweenAmounts(decimal floorAmount, decimal ceilingAmount, bool includeFloor,
                                               bool includeCeiling);
        IQueryable<ClothingDonation> GetForDonationBin(DonationBin donationBin);
    }
}
